package org.example.app.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 搜索关键词实体类 - 符合实时数仓设计规范
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SearchKeyword {
    // 业务主键
    private String keyword;
    
    // 维度字段
    private String categoryId;
    private String categoryName;
    private String keywordType;  // core、modifier、trend等
    private String trendType;    // hot、growth、blue_sea等
    
    // 搜索行为度量字段
    private Long searchCount;
    private Long clickCount;
    private Long orderCount;
    private Long conversionCount;
    private Double clickRate;
    private Double conversionRate;
    
    // 竞争分析度量字段
    private Long supplyCount;        // 供给商品数量
    private Double demandSupplyRatio; // 需求供给比
    private Double coreStrength;     // 核心词强度
    private Double modifierEffect;   // 修饰词效果
    
    // 增长分析字段
    private Long currentSearchCount;
    private Long previousSearchCount;
    private Double growthRate;
    
    // 实时数仓必需的时间字段
    private Long ts;           // 事件时间戳（毫秒）
    private String stt;        // 窗口开始时间
    private String edt;        // 窗口结束时间
    private String period;     // 统计周期（1h、1d、7d等）
    
    // 数据血缘字段
    private String dataSource; // 数据来源
    private String processTime; // 处理时间
    private Integer version;    // 数据版本
    
    // 排名相关
    private Integer rank;
    private String rankType;   // 排名类型：hot、growth、core等
}